package Demo26;
/*
抽取---重复的内容只写一遍；

问题描述
我们需要抽取一个共有方法，用来解决两个默认方法之间重复代码的问题
但我们这个共有方法不应该让实现类使用，应该是私有化的

解决方案
从java9开始，接口中允许定义私有方法
1，普通私有方法，解决多个默认方法之间重复代码问题
格式
private 返回值类型 方法名称（参数列表）｛
    方法体
｝

2，静态私有方法，解决多个静态方法之间重复代码问题
格式
private static 返回值类型 方法名称（参数列表）｛
    方法体
｝
 */
public interface MyInterfacePrivateA {
    public  default  void  methodDefaultA(){
        System.out.println("默认方法A");
//        System.out.println("AAA");
//        System.out.println("BBB");
//        System.out.println("CCC");
        //调用
        methodCommon();


    }

    public  default  void  methodDefaultB(){
        System.out.println("默认方法A");
//        System.out.println("AAA");
//        System.out.println("BBB");
//        System.out.println("CCC");

        methodCommon();

    }

    //解决重复代码问题
//    public default  void  methodCommon(){
    private   void  methodCommon(){
        //现在就只有A、B能用methodCommon。
        System.out.println("AAA");
        System.out.println("BBB");
        System.out.println("CCC");

    }
}
